Rate control is essential for media streaming over packet networks. The challenge in delivering bandwidth-intensive content like multimedia over capacity-limited, shared links (such as over a cellular network) is to quickly respond to changes in network conditions by adjusting the bitrate and the media encoding scheme with a bitrate manager to optimize the viewing and listening experience of the user. In particular, when transferring a media stream over a connection that cannot provide the necessary throughput, several undesirable effects arise. For example, a network buffer may overflow, resulting in packet loss causing garbled video or audio playback, or a media player buffer may underflow resulting in playback stall. Accordingly, media is often compressed to accommodate the reduced bandwidth of the connection.
The traditional bitrate manager modifies every video frame so that the output of the encoding process is suited for the bandwidth available for transmission. In this type of system, all media frames are processed by a “compression” data path. The compression data path is needed because of the stateful nature of video encoding. That is, to encode an output frame, regardless of the bitrate, the encoders need a live history of the processing state corresponding to the codec algorithms being used. A problem with this approach is the need of continuously process video (decoding, re-encoding), even if no network degradation is present.